Given two sequences, find the length of longest subsequence present in both of them. Both the strings are of uppercase. Example 1: Input: A = 6, B = 6 str1 = ABCDGH str2 = AEDFHR Output: 3 Explanation: LCS for input Sequences “ABCDGH” and “AEDFHR” is “ADH” of length 3. Example 2: Input: A = 3, B = 2 str1 = ABC str2 = AC Output: 2 Explanation: LCS of "ABC" and "AC" is "AC" of length 2.
Code #include <bits/stdc++.h> using namespace std; int lcs(string x,string y,int m,int n) { int dp[m+1][n+1],i,j; for(i=0;i<m+1;i++) { for(j=0;j<n+1;j++) { if(i==0||j==0) dp[i][j]=0; } } for(i=1;i<m+1;i++) { for(j=1;j<n+1;j++) { if(x[i-1]==y[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } } return dp[m][n]; } int main() { string x,y; int m,n; cin>>m>>n; cin>>x>>y; cout<<lcs(x,y,m,n); return 0; }